[리팩터링] 개발 요구사항 (게시판 프로젝트)

실행 환경

같은 폴더의 “[리팩터링] 게시판 프로젝트 아키텍처” 노트에 명시된 스택 기준 — Spring Boot 3.3.5, Java 17, H2 Database, Thymeleaf.

프로젝트를 시작하며

개인 프로젝트로서 그동안 학습한 내용을 실제로 사용해보고자 게시판 프로젝트를 진행한다. 이론적으로 배운 내용도 직접 사용해보고 왜 사용해야 하는지 이해해야 실질적인 학습이 된다고 판단하여, 이번 기회에 학습 내용을 적용해보고 그 이유를 탐구하고자 한다.

요구사항을 정리하는 이유

개발 주제만 정하고 머릿속으로 대략적인 설계만 그린 채 시작하는 경우, 단기 프로토타입이라면 빠른 개발에 이점이 있지만 지속적으로 리팩토링해야 하는 프로젝트에서는 방향성이 흔들리기 쉽다. 이를 방지하기 위해 이번 프로젝트는 요구사항 정의부터 진행한다.

요구사항

  • 일반적인 요구사항 정의서 양식 중 하나를 채택하여 작성한다.
  • “번호, 역할, 구분, 기능명, 상세 설명, 비고” 항목으로 표를 구성한다.
번호역할구분기능명상세 설명비고
1공통예외처리에외처리 페이지404, 502, 404 에러에 대해서 페이징 처리를 진행하여 사용자들의 오류를 인식
2회원로그인로그인인증받은 사용자만이 접속을 진행하여 웹페이지내에서 활동이 가능로그인을 하지 않으면 커뮤니티 참가 불가, 필수적 처리,로그인 인증시간:1시간
3회원로그인로그아웃로그아웃을 진행시에 인증을 소멸하며, 다시 로그인이 진행되도록 설정
4회원회원관리회원가입로그인을 하기위해서 회원으로 등록하는 과정으로서 필수적인 데이터입력을 통해 회원을 저장회원 가입시의, id와 비밀번호, 이름은 필수적으로 입력을 받아야함(id에는 특수문자를 제외, 이름의경우 영문/한글만 가능)
5회원회원관리회원수정id와 이름, 비밀번호 및 주소를 변경할 수 있다작업진행예정 (로그인 아이디도 수정가능하게 변경)
6회원회원관리회원탈퇴회원 탈퇴시에, 작성했던 글의 경우도 자동으로 삭제가 진행작업진행예정 (추가해야함)
7게시판게시글글 조회마이페이지에서는 본인의 글들의 리스트들이 보이게 하고, 게시판에서는 모든 사용자들의 글이 조회가 되게 설정
8게시판게시글글 삭제글 삭제의 경우, 마이페이지에서 작업이 가능하고 삭제 후에는 바로삭제되는 것이 아닌, 임시 휴지통에 들어가게 되고 복구 및 영구삭제 가능영구삭제의 경우, 기간이 소요되면 삭제가 진행 또는 바로삭제시 영구삭제 (추가 필요)
9게시판게시글글 수정글의 제목, 본문, 첨부파일이 수정이 가능하고, 첨부파일의 경우 삭제할경우 서버에서는 바로 삭제되며, 다시 저장해야함첨부파일 삭제 (리팩터링 필요)
10게시판게시글글 작성글의 제목, 본문, 첨부파일 글쓰기 가능첨부파일의 크기 제한 필요,본문의 길이 제한 (최대 1000자이내)글의 제목의 경우 (최소 50자)
11게시판게시글 검색게시글 검색제목 및 글쓴이, 내용을 기준으로 검색이 가능
12게시판게시글 조회 수게시글 조회 개수한페이지에 게시글의 경우, 30/50/100개 기준으로 설정이 가능하며, 기본 50개의 기준으로 확인 가능추가필요

요구사항 정의서 작성 후 느낀점

개발 완료 후 리팩토링을 진행하려 했을 때 어디부터 수정해야 할지 파악이 어려웠던 경험이 있었다. 이를 계기로 요구사항을 처음부터 다시 정리해보니, 빠뜨렸던 부분이 드러났고 구현 방향도 명확해졌다.

요구사항을 먼저 명확히 정리하고 개발에 들어가면 불필요한 더미 코드를 줄일 수 있고, 기술 스택을 사용해보는 것 자체가 목적이 아니라 프로젝트에 필요한 기술을 적재적소에 선택하는 것이 더 중요하다는 점을 확인할 수 있었다.

관련 문서